/**
 * 日期处理工具类
 */
class DateUtil {
    /**
     * 格式化日期对象
     * @param {Date} date - 日期对象 
     * @param {string} format - 格式字符串（yyyy-MM-dd HH:mm:ss）
     */
    static format(date = new Date(), format = 'yyyy-MM-dd') {
        const pad = n => n.toString().padStart(2, '0');
        return format
            .replace('yyyy', date.getFullYear())
            .replace('MM', pad(date.getMonth() + 1))
            .replace('dd', pad(date.getDate()))
            .replace('HH', pad(date.getHours()))
            .replace('mm', pad(date.getMinutes()))
            .replace('ss', pad(date.getSeconds()));
    }

    /**
     * 计算日期差值
     * @param {Date} startDate - 开始日期
     * @param {Date} endDate - 结束日期
     * @returns {Object} { days, hours, minutes, seconds }
     */
    static dateDiff(startDate, endDate) {
        const diff = endDate - startDate;
        return {
            days: Math.floor(diff / 86400000),
            hours: Math.floor((diff % 86400000) / 3600000),
            minutes: Math.floor((diff % 3600000) / 60000),
            seconds: Math.floor((diff % 60000) / 1000)
        };
    }
}

// 导出DateUtil类
module.exports = DateUtil;